package response

import (
	"time"

	"github.com/flipped-aurora/gin-vue-admin/server/global"
)

// UserInteraction 用户互动状态
type UserInteraction struct {
	IsLiked    bool `json:"isLiked"`    // 点赞
	IsDisLiked bool `json:"isDisLiked"` // 点踩
	IsMark     bool `json:"isMark"`     // 收藏
}

// ContentResponse 内容响应模型
type ContentResponse struct {
	ID                int64                `json:"id"`                // ID 主键
	CommunityID       uint                 `json:"communityId"`       // 所属社区
	PublisherID       uint                 `json:"publisherId"`       // 发布者ID
	Type              global.ContentType   `json:"type"`              // 内容类型（0-全部，1-动态，2-提问，3-回答）
	Title             string               `json:"title"`             // 标题
	Body              string               `json:"body"`              // 内容文本
	ParentID          int64                `json:"parentId"`          // 父内容ID
	Status            global.ContentStatus `json:"status"`            // 状态（1-正常，2-封禁，3-删除）
	CreateTime        time.Time            `json:"createTime"`        // 创建时间
	UpdateTime        time.Time            `json:"updateTime"`        // 更新时间
	Likes             int64                `json:"likes"`             // 点赞数
	Dislikes          int64                `json:"dislikes"`          // 点踩数
	Marks             int64                `json:"marks"`             // 收藏数
	Shares            int64                `json:"shares"`            // 分享数
	Views             int64                `json:"views"`             // 浏览数
	CommentsCount     int64                `json:"commentsCount"`     // 评论数
	UserInteraction   UserInteraction      `json:"userInteraction"`   // 用户互动状态
	EnableProfRating  bool                 `json:"enableProfRating"`  // 是否启用专业评分
	ProfRatingAverage float64              `json:"profRatingAverage"` // 专业评分平均分
	ProfRatingCount   int64                `json:"profRatingCount"`   // 专业评分数量
}

// PageResult 分页结果
type PageResult struct {
	List     interface{} `json:"list"`     // 数据列表
	Total    int64       `json:"total"`    // 总数
	Page     int         `json:"page"`     // 当前页
	PageSize int         `json:"pageSize"` // 每页数量
}

// ContentUserActionVO 用户内容操作记录返回结果VO对象
type ContentUserActionVO struct {
	ID         uint64             `json:"id"`
	Type       global.ContentType `json:"type"`        // Type 内容类型（1-提问，2-回答，3-评论）
	Title      string             `json:"title"`       // Title 标题，可选，提问/帖子用
	Body       string             `json:"body"`        // Body 内容文本
	CreateTime int64              `json:"create_time"` // 内容发布时间

	PublisherID    uint64 `json:"publisher_id"`    // 发布者id
	PublisherName  string `json:"publisher_name"`  // 发布者昵称
	PublisherImage string `json:"publisher_image"` // 发布者头像
	ActionTime     int64  `json:"action_time"`     // 操作时间
	LikeCount      int64  `json:"like_count"`      // 点赞数
	CollectCount   int64  `json:"collect_count"`   // 收藏数
	CommentsCount  int64  `json:"comments_count"`  // 评论数
	// 父内容信息
	ParentID             int64              `json:"parent_id"`
	ParentType           global.ContentType `json:"parent_type"`
	ParentContentTitle   string             `json:"parent_content_title"`
	ParentContentBody    string             `json:"parent_content_body"`
	ParentPublishTime    int64              `json:"parent_publish_time"`
	ParentPublisherName  string             `json:"parent_publisher_name"`
	ParentPublisherImage string             `json:"parent_publisher_image"`
	ParentPublisherID    uint64             `json:"parent_publisher_id"`
}

// ContentUserActionResponse 用户内容操作记录返回结果
type ContentUserActionResponse struct {
	Total    int64                 `json:"total"`
	Contents []ContentUserActionVO `json:"contents"`
}
